package org.massdgames.thunder.server.domain.strategy;

import org.massdgames.thunder.server.domain.DeckSet;
import org.massdgames.thunder.server.domain.DungeonDeck;
import org.massdgames.thunder.server.domain.HeroDeck;
import org.massdgames.thunder.server.domain.VillageDeck;

import com.google.inject.AbstractModule;

public class GinModule extends AbstractModule{

    @Override
    protected void configure() {
        bind(DungeonFetchStrategy.class).to(BasicDungeonFetchStrategy.class);
        bind(VillageFetchStrategy.class).to(BasicVillageFetchStrategy.class);
        bind(HeroFetchStrategy.class).to(BasicHeroFetchStrategy.class);
        bind(FeatureFetchStrategy.class).to(BasicFeatureFetchStrategy.class);
        bind(GuardianFetchStrategy.class).to(BasicGuardianFetchStrategy.class);
        bind(ThunderstoneFetchStrategy.class).to(BasicThunderstoneFetchStrategy.class);
        
        bind(DungeonLoadStrategy.class).to(BasicDungeonLoadStrategy.class);
        bind(VillageLoadStrategy.class).to(BasicVillageLoadStrategy.class);
        bind(HeroLoadStrategy.class).to(BasicHeroLoadStrategy.class);
        bind(FeatureLoadStrategy.class).to(BasicFeatureLoadStrategy.class);
        bind(GuardianLoadStrategy.class).to(BasicGuardianLoadStrategy.class);
        bind(ThunderstoneLoadStrategy.class).to(BasicThunderStoneLoadStrategy.class);
        
        bind(DungeonDeck.class);
        bind(VillageDeck.class);
        bind(HeroDeck.class);
        
        bind(DeckSet.class);
    }

}
